Natural Quick Functions Gestures

ABSTRACT

Natural gestures for interacting with spreadsheet documents are provided. A user may interact with a spreadsheet document using a variety of touch-based gestures. Gestures applied to a spreadsheet document may be used for making structural and display changes to the document. For example, gestures may be used on the spreadsheet document for inserting new columns and rows; for revealing hidden columns and rows; for deleting columns and rows; for extending functionalities across columns and rows; for moving objects displayed in a spreadsheet document; and for navigating various parts of a spreadsheet document.

BACKGROUND

With the advent of spreadsheet applications, computer and computersoftware users have become accustomed to processing and manipulatingenormous amounts of data and using spreadsheet functions to perform manysimple to very complex calculations and organizational functions withtheir data. Typical spreadsheet solutions provide a grid made up of rowsand columns for receiving and manipulating data. Generally, usersinteract with spreadsheets through input devices, such as mice,touchscreens, motion-detection devices, graphical user interfaces, andkeyboards. Sometimes this interaction can be frustrating. For example,when utilizing a spreadsheet application on a touch device, the userinterface (UI) may be designed as a mouse-focused UI. Selection of andinteraction with data and functionality controls via touch may be thesame as or similar to selection and interaction via a mouse, whereindifferences, in some cases, may include providing larger functionalitycontrols for touch input, or that a user's finger is used instead of amouse cursor.

Oftentimes, it is believed that touch or motion-sensing devices may notbe suited for productivity work, and may be more suited for consumptionof data. Current UI interactions with a spreadsheet application on touchor motion-sensing devices may not take advantage of using naturalgestures to interact with the application. Thus, an improvement andtechnical advantage will be gained by providing a variety of naturalgestures for interacting with an application user interface, such as aspreadsheet application user interface and associated documents.

It is with respect to these and other considerations that the presentinvention has been made. Although relatively specific problems have beendiscussed, it should be understood that the embodiments disclosed hereinshould not be limited to solving the specific problems identified in thebackground.

SUMMARY

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription section. This summary is not intended to identify keyfeatures or essential features of the claimed subject matter, nor is itintended to be used as an aid in determining the scope of the claimedsubject matter.

Embodiments of the present invention solve the above and other problemsby providing natural gestures for interacting with spreadsheetdocuments. According to embodiments, a user may interact with aspreadsheet document using a variety of touch-based gestures. Gesturesapplied to a spreadsheet document may be used for making structural anddisplay changes to the document. For example, gestures may be used onthe spreadsheet document for inserting new columns and rows; forrevealing hidden columns and rows; for deleting columns and rows; forextending functionalities across columns and rows; for moving objectsdisplayed in a spreadsheet document; and for navigating various parts ofa spreadsheet document.

The details of one or more embodiments are set forth in the accompanyingdrawings and description below. Other features and advantages will beapparent from a reading of the following detailed description and areview of the associated drawings. It is to be understood that thefollowing detailed description is explanatory only and is notrestrictive of the invention as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

Further features, aspects, and advantages of the present disclosure willbecome better understood by reference to the following detaileddescription, appended claims, and accompanying figures, wherein elementsare not to scale so as to more clearly show the details, wherein likereference numbers indicate like elements throughout the several views,and wherein:

FIG. 1 illustrates a system architecture in which embodiments of thepresent invention may be practiced;

FIG. 2 illustrates a touch input system in which embodiments of thepresent invention may be practiced;

FIGS. 3A-3D illustrate a pulling-apart gesture;

FIGS. 4A-4B illustrate a touch-and-slide gesture;

FIGS. 5A-5B illustrate a drag-and-drop gesture;

FIGS. 6A-6B illustrate a tap-hold-pull gesture;

FIGS. 7A-7B illustrate a push-together gesture;

FIGS. 8A-8B illustrate a drag-and-drop between gesture;

FIGS. 9A-9C illustrate a multi-finger swipe gesture;

FIGS. 10A-10D illustrate a touch-and-throw gesture;

FIGS. 11A-11B illustrate a touch-and-pull gesture;

FIGS. 12A-12B illustrate a pinch-and-turn gesture;

FIGS. 13A-13B illustrate a multi-finger tear-and-pull gesture;

FIG. 14 shows one embodiment of a method for providing natural quickfunction gestures;

FIG. 15 is a block diagram illustrating one embodiment of the physicalcomponents of a computing device with which embodiments of the inventionmay be practiced;

FIGS. 16A and 16B are simplified block diagrams of a mobile computingdevice with which embodiments of the present invention may be practiced;and

FIG. 17 is a simplified block diagram of a distributed computing systemin which embodiments of the present invention may be practiced.

DETAILED DESCRIPTION

Various embodiments are described more fully below with reference to theaccompanying drawings, which form a part hereof, and which show specificexemplary embodiments. However, embodiments may be implemented in manydifferent forms and should not be construed as limited to theembodiments set forth herein; rather, these embodiments are provided sothat this disclosure will be thorough and complete, and will fullyconvey the scope of the embodiments to those skilled in the art.Embodiments may be practiced as methods, systems, or devices.Accordingly, embodiments may take the form of a hardware implementation,an entirely software implementation or an implementation combiningsoftware and hardware aspects. The following detailed description is,therefore, not to be taken in a limiting sense.

Embodiments of natural quick function gestures are described herein andare illustrated in the accompanying figures. Natural quick functiongestures may be provided in the context of an application on any device,service, or general endpoint capable of running the application. FIG. 1illustrates a system architecture in which embodiments of the presentinvention may be practiced. The system 100 includes one or morecomputing devices such as a personal computer (e.g., a desktop or laptopcomputer) 102A, a tablet computer 102B, a smart phone 102C, and alarge-scale display 102D. Each of the computing devices 102 may run anapplication 104 for displaying and editing data. As illustrated in FIG.1, an application 104 may include a spreadsheet application fordisplaying and editing a spreadsheet 106. As should be appreciated, thecomputing devices 102 are for purposes of illustration only and are notexhaustive of the various types of computing devices that may be used inaccordance with embodiments of the present invention. For example, whilethe large-scale display 102D is illustrated as a display unit with anassociated computing device 102A, the large-form display device 102D mayoperate as an integrated display/computing device that may be used forany suitable use from large-scale display uses, for example, in aconference room, to personal computing, as desired.

According to embodiments, each of the computing devices 102 illustratedin FIG. 1 may receive input through a variety of suitable meansincluding touch or gesture input, keyboard input, mouse input, voicecommand input, electronic inking input, and the like. According to oneembodiment, each computing device 102 may comprise an operating systemconfigured to include support for touch and gesture input. According toanother embodiment, a gesture manager 108 illustrated in associationwith each of the computing devices and which will be described ingreater detail below, may be utilized to process some/all of the touchand gesture input that is received from touch and gesture input.

Referring still to FIG. 1, the applications 104 illustrated inassociation with each of the computing devices 102 are illustrative ofapplications 104 having sufficient computer executable instructions forenabling embodiments of the present invention as described herein. Anexample application 104 includes a spreadsheet application, such asExcel® manufactured by Microsoft Corporation of Redmond, Wash. As shouldbe appreciated, this is but one example spreadsheet application, and anyother applications 104 suitable for enabling embodiments describedherein may be used.

According to embodiments, application functionality associated with eachof the computing devices 102 may operate according to one or morevariations. For example, each application 104 may be a fully functional“thick” client application having all application functionalityincluding the ability to send and receive data to and from otherapplications 102 operating on other computing devices in thecollaborative work session. According to another embodiment, thecomputing devices 102 may communicate via a distributed computingnetwork 112, for example, the Internet. An Internet-based or“cloud-based” server computer 110 may be operated on one or more webservices applications 114 for providing a collaborative work session.According to this embodiment, each of the devices 102 may operate asthin client systems, and collaborative communication between the devicesmay be operated at the direction of the web services application 114operated at a remote site. According to this embodiment, an application104 may operate at the remote server 110 wherein each of the devices 102may access and receive the functionality described herein via a remoteservice from the server based application, for example, via the webservices application 114.

As illustrated in FIG. 1, the system 100 may comprise a gesture manager108 configured to detect gestures that are received by a computingdevice 102. Generally, a gesture manager 108 may be configured to sensewhen a gesture is received that is related to performing an operation inconjunction with an application program 104, such as a spreadsheetapplication. A gesture may include user interaction with data displayedon or functionalities associated with a computing device 102, whereinthe user interaction may originate from a bodily movement (e.g.,movement of one or more fingers, hands, arms, etc.). A gesture mayinclude bodily contact with a touch input device (e.g., a touchscreen116), or may include bodily movement detected by a sensor, such as acamera, an accelerometer, a motion detector, etc. A touch input devicemay be operable to recognize a presence of two or more points of contacton a sensing surface, sometimes referred to as multi-touch input. Agesture may include user interaction with a touchscreen 116 using bodilymovements to manipulate data and/or to select functionalities, forexample, data displayed in and functionalities associated with anapplication 104, such as a spreadsheet application. As used herein, theterm “gesture” includes touch input. As can be appreciated, gesturingmay enable users to communicate with a computing device 102 and interactnaturally. Different types of gestures may be received. For example, atapping gesture, a pulling gesture, a dragging gesture, a pushinggesture, a throwing gesture, panning gesture, a tearing gesture, apinch-and-turn gesture, and the like may be received. The gestures maybe used to change a display of information, activate/deactivatefunctions, and/or perform some other type of operation associated withan application 104 or some other function and/or program. Additionaldetails regarding the gestures will be provided below.

FIG. 2 illustrates an exemplary touch input system 200. The touch inputsystem 200 as illustrated comprises a touch panel 216 that comprisesseveral sensors 204 integrated therein. According to one embodiment, thesensors 204 are Infrared (IR) sensors. The touch input system 200 isconfigured to detect objects that either in contact with a touchablesurface 116 or are close to but not in actual contact with (“adjacent”)touchable surface 116. The objects that are sensed may be many differenttypes of objects such as finger, hands, or other physical objects.Infrared sensors 204 are distributed throughout touch panel 216 and arearranged parallel to touchable surface 116. One or more of the infraredsensors 204 may detect infrared radiation reflected from objects, suchas hand 208, as indicated by the arrow. Although the term “above” isused in this description, it should be understood that the orientationof the touch panel system is irrelevant. As shown in FIG. 2, thetouchable surface 116 is horizontal, but in a different embodimentgenerated by rotating system 200 clockwise by 90 degrees, the touchablesurface 116 could be vertical. In that embodiment, the objects fromwhich reflected IR radiation is detected are to the side of touchablesurface 116. The term “above” is intended to be applicable to all suchorientations. The touchable surface 116 may also be changed to otherorientations.

The touch panel 216 may comprise filters 212 that absorb visible lightand transmit infrared radiation and are located between touchablesurface 116 and IR sensors 204 in order to shield IR sensors 204 fromvisible light incident on touchable surface 116 in the case where IRsensors 204 are sensitive to a broader range of wavelengths of lightother than purely infrared wavelengths.

The touch panel 216 may comprise a display that is configured to displayimages that are viewable via the touchable surface 116. For example, thedisplayed image may be images relating to an application 104, such as aspreadsheet 106. The display may be, for example, an LCD, an organiclight emitting diode (OLED) display, a flexible display such aselectronic paper, or any other suitable display in which an IR sensorcan be integrated.

The system 200 may comprise a backlight 216 for the display. Thebacklight 216 may comprise at least one IR source 218 that is configuredto illuminate objects in contact with or adjacent to the touchablesurface 116 with infrared radiation through the touchable surface 116,as indicated by the arrows. IR sensors 204 are sensitive to radiationincident from above, so IR radiation traveling directly from thebacklight 216 to the IR sensors 204 is not detected.

The output of sensors 204 may be processed by the gesture manager 108and/or functionality included within an operating system or some otherapplication to detect when a physical object (e.g., a hand, a finger, astylus, etc.) has come into physical contact with a portion of the touchinput surface 116 and/or a physical object is in close proximity to thesurface. For example, sensors 204 can detect when a portion of a user'shand 208, such as one or more fingers, has come in contact with or isnear to the touch input display surface 116. Additional sensors can beembedded in the touch input display surface 116 and can include forexample, accelerometers, pressure sensors, temperature sensors, imagescanners, barcode scanners, etc., to detect multiple simultaneousinputs.

When the sensors 204 are IR sensors, the IR radiation reflected from theobjects may be reflected from a user's hands, fingers, reflective inkpatterns on the objects, metal designs on the objects or any othersuitable reflector. Fingers reflect enough of the near IR to detect thata finger or hand 208 is located at a particular location on or adjacentthe touchable surface 116. A higher resolution of IR sensors may be usedto scan objects in order to achieve higher resolution.

Sensors 204 can be included (e.g., embedded) in a plurality oflocations. The density of sensors 204 can be sufficient such thatcontact across the entirety of the touch input surface 116 can bedetected. Sensors 204 may be configured to sample the surface of touchinput display surface 206 at specified intervals, such as, for example,1 ms, 5 ms, etc. for detected contact and/or near contact. The sensordata received from sensors 204 changes between sampling intervals asdetected objects move on the touch surface; detected objects are nolonger within range of detection; and when new objects come in range ofdetection. For example, the gesture manager 108 can determine thatcontact was first detected at a first location and then contact wassubsequently moved to other locations. In response, the gesture manager108 may determine when a gesture is received and what type of gesture isreceived.

FIG. 2 provides just one example of a touch input system. In otherexemplary touch systems, the backlight may not comprise any IR sourcesand the surface 116 may include a frontlight which comprises at leastone IR source. In such an example, the touchable surface 116 of thesystem is a surface of the frontlight. The frontlight may comprise alight guide, so that IR radiation emitted from IR source travels throughthe light guide and is directed towards touchable surface and anyobjects in contact with or adjacent to it. In other touch panel systems,both the backlight and frontlight may comprise IR sources. In yet othertouch panel systems, there is no backlight and the frontlight comprisesboth IR sources and visible light sources. In further examples, thesystem may not comprise a frontlight or a backlight, but instead the IRsources may be integrated within the touch panel. In an implementation,the touch input system 200 may comprise an OLED display which comprisesIR OLED emitters and IR-sensitive organic photosensors (which maycomprise reverse-biased OLEDs). In some touch systems, a display may notbe included. Even if the touch system 200 comprises one or morecomponents or elements of a display, the touch system may be configuredto not display images. For example, this may be the case when the touchinput device is separate from a display. Other examples include atouchpad, a gesture pad, and similar non-display devices and components.

For some applications, it may be desirable to detect an object only ifit is in actual contact with the touchable surface 116 of the touchpanel system 200. For example, according to one embodiment, a gesturemay not be recognized when the gesture is not performed touching thesurface 116. Similarly, a gesture may be recognized when performed abovethe surface 116. The IR source of the touch input system may be turnedon only if the touchable surface 116 is touched. Alternatively, the IRsource may be turned on regardless of whether the touchable surface 116is touched, and detection of whether actual contact between thetouchable surface 116 and the object occurred is processed along withthe output of the IR sensor. Actual contact between the touchablesurface 116 and the object may be detected by any suitable means,including, for example, by a vibration sensor or microphone coupled tothe touch panel 216. A non-exhaustive list of examples for sensors todetect contact includes pressure-based mechanisms, micro-machinedaccelerometers, piezoelectric devices, capacitive sensors, resistivesensors, inductive sensors, laser vibrometers, and LED vibrometers.

The gesture manager 108 may be configured to recognize many differenttypes of gestures. Some of the gestures may be context dependent, bespecific to an application 104, and/or be used within many differenttypes of applications 104. For example, gestures may be used to interactwith a spreadsheet 106 that is associated with a spreadsheetapplication. Gestures may be received in many different locationsrelating to touch input device/display 116. For example, a gesture maybe received within a display of spreadsheet, within a gesture box,and/or at some other location on a display. Exemplary gestures andinteractions with a spreadsheet are described below.

As illustrated and described with reference to FIGS. 3-14 below,gestures may be used in association with spreadsheet documents formanipulating information contained in spreadsheet documents andnavigating spreadsheet documents, but also, gestures may be used formaking structural and display changes to spreadsheet documents. Asdescribed below, gestures may be used for adding, deleting and movingcolumns and rows; for revealing or hiding columns and rows; for applyingspreadsheet functionality; and for moving spreadsheet objects. As shouldbe understood, these are but a few examples of some of the uses ofgestures applied to spreadsheet documents as will be more fullydescribed below.

FIGS. 3A and 3B show a pull-apart gesture to insert one or more columnswithin a spreadsheet 106. As illustrated, FIG. 3A shows a spreadsheet106 before pulling apart columns 302 to insert one or more columns 302,and FIG. 3B shows the same spreadsheet 106 while performing a columninsertion operation via a pull-apart gesture 310. According to anembodiment, a pull-apart gesture 310 may be detected when a user touchesa touchscreen 116 with two of his fingers and pulls them apart asindicated by gesture 310. To perform a column insertion operation viathe pull-apart gesture 310, the user may select a first column 302 in aspreadsheet 106, for example, by touching a column header 312 associatedwith the first column 302; select an adjacent column 302, for example,by touching the column header 312 associated with the adjacent column302; and may utilize the pull-apart gesture 310 along an X-axis 306 toinsert a column 302 between the first and second columns 302. Dependingon how far apart the user moves his fingers, one or more columns 302 maybe inserted.

According to an embodiment, one or more rows 304 may be inserted into aspreadsheet 106 via selecting adjacent rows 304, and utilizing thepull-apart gesture 310 along a Y-axis 308. Depending on how far apartthe user moves his fingers, one or more rows 304 may be inserted. A livepreview of the column/row insertion operation may be displayed such thatthe user may be able to determine a number of columns 302 or rows 304that will be inserted upon releasing the touch.

According to another embodiment, and as illustrated in FIGS. 3C and 3D,the pull-apart gesture 310 may be utilized to perform a column or rowrevelation operation, for example, when a column 302 or row 304 may behidden between two columns 302 or rows 304. To perform a hidden columnrevelation operation via the pull-apart gesture 310, the user may selecta first column 302 in a spreadsheet 106, for example, by touching acolumn header 312 associated with the first column 302; select anadjacent column 302, for example, by touching the column header 312associated with the adjacent column 302; and may utilize the pull-apartgesture 310 along an X-axis 306 to reveal one or more hidden column 314between the first and second columns 302.

According to an embodiment, one or more hidden rows may be revealed intoa spreadsheet 106 via selecting adjacent rows 304, and utilizing thepull-apart gesture 310 along a Y-axis 308. Depending on how far apartthe user moves his fingers and depending on how many rows 304 may behidden, one or more rows 304 may be revealed. A live preview of thecolumn/row revelation operation may be displayed such that the user maybe able to determine how far apart to move the columns 302 or rows 304to reveal the desired hidden column(s) 314 or rows.

FIGS. 4A and 4B show a touch-and-slide gesture to insert one or morecolumns 302 within a spreadsheet 106. FIG. 4A shows a spreadsheet 106before one or more columns 302 are inserted via a touch-and-slidegesture 410, and FIG. 4B shows the same spreadsheet 106 while performinga column insertion operation via a touch-and-slide gesture 410.According to an embodiment, a tap-and-slide gesture 410 may be detectedwhen a user touches a touchscreen 116 on a displayed selectable UIcontrol, such as an insert widget 402, with a finger, and slides theinsert widget 402 as indicated by gesture 410. The selectable UI control(e.g., insert widget 402) may be displayed between adjoining columns302. The selectable UI control (e.g., insert widget 402) may bedisplayed upon receiving an indication of a selection of a column 302.For example, a user may select a column 302 via touching a column header312, and accordingly, an insert widget 402 may be displayed between theselected column 302 and an adjacent column 302. The user may select theinsert widget 402 (e.g., via touching the widget), and then slide theinsert widget 402 (i.e., touch-and-slide gesture 410) along the X-axis306 to insert a column 302. Depending on how far the user slides thewidget 402, one or more columns 302 may be inserted.

According to an embodiment, one or more rows 304 may be inserted into aspreadsheet 106 via selecting a row header 412, and utilizing thetouch-and-slide gesture 410 to select and slide a displayed selectableUI control (e.g., insert widget 402) along the Y-axis 308. Depending onhow far the user slides his finger, one or more rows 304 may beinserted. A live preview of the column/row insertion operation may bedisplayed such that the user may be able to determine a number ofcolumns 302 or rows 304 that will be inserted upon releasing the touch.

FIGS. 5A and 5B show a drag-and-drop away gesture to delete a column 302within a spreadsheet 106. FIG. 5A shows a spreadsheet 106 before acolumn 302 is deleted via a drag-and-drop away gesture 510, and FIG. 5Bshows the same spreadsheet 106 while performing a column deletionoperation via a drag-and-drop away gesture 510. According to anembodiment, a drag-and-drop away gesture 510 may be detected when a userselects a column 302, for example, by touching a touchscreen 116 on anassociated column header 312 with a finger, and drags the column header312 in an upwards or downwards direction and away from the spreadsheet106 as indicated by gesture 510. When the user releases the columnheader 312 when it has been dragged away from the other column headers312, the associated column 302 may be deleted.

According to an embodiment, one or more rows 304 may be deleted from aspreadsheet 106 via selecting a row 304, for example, by the userselecting a row header 412 of a row he wishes to delete, and utilizingthe drag-and-drop away gesture 510 to drag the row header 412 leftwards(in a left-to-right reading scenario) and away from the other rowheaders 412. When the user releases the row header 412 when it has beendragged away from the other row headers 412, the associated row 304 maybe deleted. A live preview of the column/row deletion operation may bedisplayed such that the user may be able to determine how far he needsto drag the column header 312 or row header 412 to delete the associatedcolumn 302 or row 304 upon releasing the touch.

FIGS. 6A and 6B show a touch-hold-pull gesture to reveal a hidden column314 within a spreadsheet 106. FIG. 6A shows a spreadsheet 106 before ahidden column 302 is shown via a touch-hold-pull gesture 610, and FIG.6B shows the same spreadsheet 106 while performing a hidden columnrevelation operation via a touch-hold-pull gesture 610. According to anembodiment, a touch-hold-pull gesture 610 may be detected when a userselects a first column 302, for example, by touching a touchscreen 116on the column header 312 associated with the first column with a fingeron one hand 208, and holding his finger on the column header 312; thenselects a second column 302, for example, by touching on the columnheader 312 associated with the second column with a finger on his otherhand 208; and pulls the second column header 312 in a direction alongthe X-axis 306 away from the first column 302 as indicated by gesture610. When the user releases the column headers 312 a hidden column 314beneath the second column 302 may be revealed. The width of the hiddencolumn 314 and the number of hidden columns 314 (if there are multiplehidden columns 314) revealed may be determined by how far the user pullsthe second column 302 away from the first column 302.

According to an embodiment, one or more hidden rows may be revealed in aspreadsheet 106 via selecting a row 304, for example, by a userselecting a first row header 412 via touching the first row header 412with a finger on one hand, and holding his finger on the first rowheader 412; then selecting a second row 306, for example, by touchingthe second row header 412 with a finger on the user's other hand; thenpulling the second column header 412 in a direction along the Y-axis 308away from the first row 304. When the user releases the row headers 412a hidden row beneath the second row 304 may be revealed. The height ofthe hidden row and the number of hidden rows (if there are multiplehidden rows) revealed may be determined by how far the user pulls thesecond row 304 away from the first row 304. A live preview of the hiddencolumn 314/row revelation operation may be displayed such that the usermay be able to determine how far he needs to drag the column header 312or row header 412 to reveal the hidden column(s) 314 or rows.

FIGS. 7A and 7B show a push-together gesture to hide one or more columnswithin a spreadsheet 106. As illustrated, FIG. 7A shows a spreadsheet106 before pushing together columns 302 to hide one or more columns 302,and FIG. 7B shows the same spreadsheet 106 while performing a columnhiding operation via a push-together gesture 710. According to anembodiment, a push-together gesture 710 may be detected when a usertouches a touchscreen 116 with two of his fingers and pushes themtogether as indicated by gesture 710. To perform a column hidingoperation via the push-together gesture 710, the user may select a firstcolumn 302 in a spreadsheet 106, for example, by touching a columnheader 312 associated with the first column 302; select a second column302, for example, by touching the column header 312 associated with thesecond column 302; and may utilize the push-together gesture 710 alongthe X-axis 306 to hide one or more columns 302 between the first andsecond columns 302. Depending on how far apart the user moves hisfingers, one or more columns 302 may be hidden.

According to an embodiment, one or more rows 304 may be hidden in aspreadsheet 106 via selecting two non-adjacent rows 304, and utilizingthe push-together gesture 710 along the Y-axis 308. Depending on how farapart the user moves his fingers, one or more rows 304 may be hidden. Alive preview of the column/row hiding operation may be displayed suchthat the user may be able to determine a number of columns 302 or rows304 that will be hidden upon releasing the touch.

According to another embodiment, the push-together gesture 710 may beutilized in the same manner as described with respect to FIGS. 7A and 7Bto perform a column 302 or row 304 deletion operation. Rather thanhiding one or more columns 302 or rows 304 when two columns 302 or tworows 304 are pushed together, the one or more columns 302 or rows 304may be deleted.

FIGS. 8A and 8B show a drag-and-drop between gesture to move a columnwithin a spreadsheet 106. As illustrated, FIGS. 8A and 8B show aspreadsheet 106 while performing the column moving operation via adrag-and-drop between gesture 810. According to an embodiment, adrag-and-drop between gesture 810 may be detected when a user selects acolumn 302, for example, by touching a touchscreen 116 on an associatedcolumn header 312 with a finger, and drags the column header 312 awayfrom its current position in the spreadsheet 106, and into a newposition between two columns 302 as indicated by gesture 810. When theuser releases the column header 312 when it has been dragged between twoother column headers 312, the associated column 302 may be moved to theposition between the two columns associated with the two other columnheaders 312.

According to an embodiment, one or more rows 304 may be moved within aspreadsheet 106 via selecting a row 304, for example, by a userselecting a row header 412 of a row he wishes to move, and utilizing thedrag-and-drop between gesture 810 to drag the row header 412 away fromits current location and drag the row header 412 between two other rowheaders 412. When the user releases the row header 412, the associatedrow 304 may be moved between the two rows 304 associated with the twoother row headers 412. A live preview of the column/row move operationmay be displayed such that the user may be able to see where theselected column 302 or row 304 may be placed upon releasing the touch.

FIGS. 9A, 9B, and 9C show a multi-finger or multi-touch swipe gesture tonavigate between individual pages or sheets (herein referred to assheets 902,904) in a spreadsheet 106 document. As illustrated, FIG. 9Ashows a first sheet 902 of a spreadsheet 106 displayed before navigatingto a next sheet 904 of the spreadsheet 106 via a multi-finger swipegesture 910, FIG. 9B shows the first sheet 902 of the spreadsheet 106being panned out of display while a second sheet 904 is being pannedinto the display via a multi-finger swipe gesture 910, and FIG. 9C showsthe second sheet 904 of the spreadsheet 106 after it has been pannedinto view. According to an embodiment, a multi-finger swipe gesture 910may be detected when a user touches a touchscreen 116 with multiplefingers, and swipes a spreadsheet 106 in a lateral direction along theX-axis 306 as indicated by gesture 910.

The speed of the movement of the multi-finger swipe gesture 910 may beused in determining a speed of the panning of the spreadsheet 106. Forexample, a sudden movement in a direction may increase the speed of thepanning action. According to one embodiment, a multi-finger swipegesture 910 may perform a pan to a single next sheet 904, oralternatively, according to another embodiment, a user may pan throughmultiple sheets 902,904 with a single multi-finger swipe gesture 910,depending on the speed of the gesture.

FIGS. 10A and 10B show a touch-and-throw gesture for extending aselected functionality from one portion of a spreadsheet document toanother portion of the document. According to one embodiment, thetouch-and-throw gesture may be used to extend a selection of one or morecells to a last non-blank cell in the same column 302 or row 304 as theselected cell(s), or if the next cell is blank, to extend the selectionto a next nonblank cell within a spreadsheet 106. FIG. 10A shows aspreadsheet 106 where a cell is selected, a selection handle 1002 isdisplayed around the selected cell, and a user touches the selectionhandle 1002 and “throws” it over other cells in the column 302 via atouch-and-throw gesture 1010. FIG. 10B shows the same spreadsheet 106after performing a selection extension operation via a touch-and-throwgesture 1010. According to an embodiment, a touch-and-throw gesture 1010may be detected when a user selects a selection handle 1002, forexample, by touching a touchscreen 116 on a selection handle 1002displayed around one or more cells, and “throws” the selection handle1002 in a direction along the Y-axis 308 as indicated by gesture 1010.Accordingly, the selection may be extended to a last nonblank cell inthe same column 302 as the selected cell(s), or if the next cell isblank, the selection may be extended to a next nonblank cell.

According to an embodiment, a selection of one or more cells in a row304 may be extended via selecting a selection handle 1002 displayedaround the selected cell(s), and utilizing the touch-and-throw gesture1010 to “throw” the selection handle 1002 in a direction along theX-axis 306. Accordingly, the selection may be extended to a lastnonblank cell in the same row 304 as the selected cell(s), or if thenext cell is blank, the selection may be extended to a next nonblankcell.

According to another embodiment, a selection may be extended to acontiguous block of data contained in cells in multiple columns 302 andmultiple rows 304 via selecting a selection handle 1002 displayed arounda selected cell or cells, and utilizing the touch-and-throw gesture 1010to “throw” the selection handle 1002 in a diagonal direction. Forexample, FIG. 10C shows a spreadsheet 106 where a cell is selected, aselection handle 1002 is displayed around the selected cell, and a usertouches the selection handle 1002 and “throws” it at an angle over othercells in a block of data, wherein the block of data comprises multiplecolumns 302 and rows 304 via a touch-and-throw gesture 1010. FIG. 10Dshows the same spreadsheet 106 after performing a selection extensionoperation via a touch-and-throw gesture 1010. According to anembodiment, a touch-and-throw gesture 1010 may be detected when a userselects a selection handle 1002, for example, by touching a touchscreen116 on a selection handle 1002 displayed around one or more cells, and“throws” the selection handle 1002 in an angular direction (along boththe X-axis 306 and the Y-axis 308) as indicated by gesture 1010.Accordingly, the selection may be extended to select a contiguous blockof rectangular data as illustrated in FIG. 10D.

FIGS. 11A and 11B show a touch-and-pull gesture to sort data. Asillustrated, FIG. 11A shows a spreadsheet 106 as a user selects a columnheader 312 and pulls it downward, and FIG. 11B shows the samespreadsheet 106 after performing a sort operation via a touch-and-pullgesture 1110. A UI element 1102 may be displayed, providing anindication of a sort operation. According to an embodiment, atouch-and-pull gesture 1110 may be detected when a column header 312 isselected, for example, by touching a touchscreen 116 where a columnheader 312 is displayed, and pulled downward along the Y-axis 308 asindicated by gesture 1110. Accordingly, the data in the column 302 maybe sorted as illustrated in FIG. 11B.

According to an embodiment, sorting of data in a row 304 may beperformed via utilizing the touch-and-pull gesture 1110. A row header412 may be selected and pulled in a direction along the X-axis 306.Accordingly, the data in the row associated with the selected row header412 may be sorted. According to an embodiment, as the column header 312or a row header 412 is pulled, a visual indicator may be displayed,wherein the visual indicator may inform the user as to how far he mayneed to drag the header 312,412, and then release it, before the sort isinvoked. If the distance does not reach a predetermined threshold beforerelease, the sort may not be invoked.

FIGS. 12A and 12B show a pinch-and-turn gesture to rotate an element. Asillustrated, FIG. 12A shows a spreadsheet 106 as a user selects anelement 1202 and rotates it, and FIG. 12B shows the same spreadsheet 106after performing a rotate operation via a pinch-and-turn gesture 1210.According to an embodiment, a pinch-and-turn gesture 1210 may bedetected when an element 1202 (e.g., text, picture, etc.) is selected,for example, by using two or more fingers to touch a touchscreen 116where an element 1202 is displayed, and turning it in a circular motionas indicated by gesture 1210. Accordingly, the element 1202 may berotated as illustrated in FIG. 12B. Although displayed in a spreadsheet,it is to be understood that utilizing a pinch-and-turn gesture 1210 torotate an element 1202 may be performed in various types of applications104.

Embodiments may comprise discontiguous selection via a select-pin-selectgesture. For example, where data may not be displayed in adjacent cells,a user may make a first selection of data with his finger, pin theselection, and then select a next selection of data. Pinning may beaccomplished via various ways, which may include selection of a UIelement that may be displayed next to the first selection, for example,by touching the UI element with another finger, by pressing and holdingthe first selection, etc. After the first selection is pinned, the usermay be able to select a next set of data.

FIGS. 13A and 13B show a multi-finger tear-and-pull gesture to “tear”objects out of a grid and to float on top of the grid or move to acanvas. As illustrated, FIG. 13A shows a spreadsheet 106 as a userselects data from the spreadsheet 106 via a multi-touch selection andtears/pulls the data from the spreadsheet 106, and FIG. 13B shows thesame spreadsheet 106 after performing the “tear” operation via atear-and-pull gesture 1310. According to an embodiment, a tear-and-pullgesture 1310 may be detected when data or an object is selected, forexample, by using two or more fingers to touch a touchscreen 116 wherethe data or object is displayed, and pulling the data or object from itscurrent position as indicated by gesture 1310. Accordingly, the data orobject may be “torn out” of the grid and may float on top of the grid ormoved to a canvas as illustrated in FIG. 13B. Although displayed in aspreadsheet, it is to be understood that utilizing a multi-fingertear-and-pull gesture 1310 to remove data as a separate element may beperformed in various types of applications 104.

With reference now to FIG. 14, a flow chart illustrating a method 1400for using gestures to interact with a spreadsheet 106 will be described.The method 1400 starts at OPERATION 1405, and proceeds to OPERATION1410, where a gesture is received. The gesture may be any of thegestures described herein or other recognized gestures, such as apulling apart gesture 310, a touch-and-slide gesture 410, adrag-and-drop gesture 510, a tap-hold-pull gesture 610, a push-togethergesture 710, a drag-and-drop between gesture 810, a multi-finger swipegesture 910, a touch-and-throw gesture 1010, a touch-and-pull gesture1110, a pinch-and-turn gesture 1210, a multi-finger tear-and-pullgesture 1310, a select-pin-select gesture, and the like may be received.According to one embodiment, the user places at least a portion of theirhand 208 (e.g. one or more fingers) on the touch surface 116.Additionally, according to some embodiments, the user may place his hand208 near the surface of the touch surface 116 but not on the touchsurface 116.

The method 1400 may proceed to OPERATION 1415, where an action to beperformed may be determined. According to an embodiment, the actionrelates to interacting with a spreadsheet 106 and comprises actions suchas inserting, deleting, moving, hiding, revealing, panning, sorting,selecting, rotating, removing, and the like. While the actions describedrelate to interaction with spreadsheets 106, other applications 104 maybe utilized with the gestures described.

Flowing to OPERATION 1420, the determined action may be performed.Generally, the action relates to manipulating data in a spreadsheet 106.For example, a column 302 or row 304 may be deleted, moved, inserted,sorted, or selected, or some other operation may be performed on data,and the like.

The method 1400 may proceed to OPERATION 1425, where the display may beupdated. The display may be updated in response to the action performedper the gesture information that is received. The method 1400 may end atOPERATION 1430.

The embodiments and functionalities described herein may operate via amultitude of computing systems including, without limitation, desktopcomputer systems, wired and wireless computing systems, mobile computingsystems (e.g., mobile telephones, netbooks, tablet or slate typecomputers, notebook computers, and laptop computers), hand-held devices,multiprocessor systems, microprocessor-based or programmable consumerelectronics, minicomputers, and mainframe computers.

In addition, the embodiments and functionalities described herein mayoperate over distributed systems (e.g., cloud-based computing systems),where application functionality, memory, data storage and retrieval andvarious processing functions may be operated remotely from each otherover a distributed computing network, such as the Internet or anintranet. User interfaces and information of various types may bedisplayed via on-board computing device displays or via remote displayunits associated with one or more computing devices. For example userinterfaces and information of various types may be displayed andinteracted with on a wall surface onto which user interfaces andinformation of various types are projected. Interaction with themultitude of computing systems with which embodiments of the inventionmay be practiced include, keystroke entry, touch screen entry, voice orother audio entry, gesture entry where an associated computing device isequipped with detection (e.g., camera) functionality for capturing andinterpreting user gestures for controlling the functionality of thecomputing device, and the like.

FIGS. 15-17 and the associated descriptions provide a discussion of avariety of operating environments in which embodiments of the inventionmay be practiced. However, the devices and systems illustrated anddiscussed with respect to FIGS. 15-17 are for purposes of example andillustration and are not limiting of a vast number of computing deviceconfigurations that may be utilized for practicing embodiments of theinvention, described herein.

FIG. 15 is a block diagram illustrating physical components (i.e.,hardware) of a computing device 1500 with which embodiments of theinvention may be practiced. The computing device components describedbelow may be suitable for the computing devices described aboveincluding the personal computer 102 a, the tablet computer 102 b, andthe smart phone 102 c. In a basic configuration, the computing device1500 may include at least one processing unit 1502 and a system memory1504. Depending on the configuration and type of computing device, thesystem memory 1504 may comprise, but is not limited to, volatile storage(e.g., random access memory), non-volatile storage (e.g., read-onlymemory), flash memory, or any combination of such memories. The systemmemory 1504 may include an operating system 1505 and one or more programmodules 1506 suitable for running software applications 104 such as thespreadsheet application. The operating system 1505, for example, may besuitable for controlling the operation of the computing device 1500.Furthermore, embodiments of the invention may be practiced inconjunction with a graphics library, other operating systems, or anyother application program and is not limited to any particularapplication or system. This basic configuration is illustrated in FIG.15 by those components within a dashed line 1508. The computing device1500 may have additional features or functionality. For example, thecomputing device 1500 may also include additional data storage devices(removable and/or non-removable) such as, for example, magnetic disks,optical disks, or tape. Such additional storage is illustrated in FIG.15 by a removable storage device 1509 and a non-removable storage device1510.

As stated above, a number of program modules and data files may bestored in the system memory 1504. While executing on the processing unit1502, the software applications 104 may perform processes including, butnot limited to, one or more of the stages of the method 1400 illustratedin FIG. 14. Other program modules that may be used in accordance withembodiments of the present invention may include electronic mail andcontacts applications, word processing applications, spreadsheetapplications, database applications, slide presentation applications,drawing or computer-aided application programs, etc.

Furthermore, embodiments of the invention may be practiced in anelectrical circuit comprising discrete electronic elements, packaged orintegrated electronic chips containing logic gates, a circuit utilizinga microprocessor, or on a single chip containing electronic elements ormicroprocessors. For example, embodiments of the invention may bepracticed via a system-on-a-chip (SOC) where each or many of thecomponents illustrated in FIG. 15 may be integrated onto a singleintegrated circuit. Such an SOC device may include one or moreprocessing units, graphics units, communications units, systemvirtualization units and various application functionality all of whichare integrated (or “burned”) onto the chip substrate as a singleintegrated circuit. When operating via an SOC, the functionality,described herein, with respect to the software applications 104 may beoperated via application-specific logic integrated with other componentsof the computing device 1500 on the single integrated circuit (chip).Embodiments of the invention may also be practiced using othertechnologies capable of performing logical operations such as, forexample, AND, OR, and NOT, including but not limited to mechanical,optical, fluidic, and quantum technologies. In addition, embodiments ofthe invention may be practiced within a general purpose computer or inany other circuits or systems.

The computing device 1500 may also have one or more input device(s) 1512such as a keyboard, a mouse, a pen, a sound input device, a touch inputdevice, etc. The output device(s) 1514 such as a display, speakers, aprinter, etc. may also be included. The aforementioned devices areexamples and others may be used. The computing device 1500 may includeone or more communication connections 1516 allowing communications withother computing devices 1518. Examples of suitable communicationconnections 1516 include, but are not limited to, RF transmitter,receiver, and/or transceiver circuitry; universal serial bus (USB),parallel, and/or serial ports.

The term computer readable media as used herein may include computerstorage media. Computer storage media may include volatile andnonvolatile, removable and non-removable media implemented in any methodor technology for storage of information, such as computer readableinstructions, data structures, or program modules. The system memory1504, the removable storage device 1509, and the non-removable storagedevice 1510 are all computer storage media examples (i.e., memorystorage.) Computer storage media may include RAM, ROM, electricallyerasable read-only memory (EEPROM), flash memory or other memorytechnology, CD-ROM, digital versatile disks (DVD) or other opticalstorage, magnetic cassettes, magnetic tape, magnetic disk storage orother magnetic storage devices, or any other article of manufacturewhich can be used to store information and which can be accessed by thecomputing device 1500. Any such computer storage media may be part ofthe computing device 1500.

FIGS. 16A and 16B illustrate a mobile computing device 1600, forexample, a mobile telephone, a smart phone, a tablet personal computer,a laptop computer, and the like, with which embodiments of the inventionmay be practiced. With reference to FIG. 16A, one embodiment of a mobilecomputing device 1600 for implementing the embodiments is illustrated.In a basic configuration, the mobile computing device 1600 is a handheldcomputer having both input elements and output elements. The mobilecomputing device 1600 typically includes a display 1605 and one or moreinput buttons 1610 that allow the user to enter information into themobile computing device 1600. The display 1605 of the mobile computingdevice 1600 may also function as an input device (e.g., a touch screendisplay 116). If included, an optional side input element 1615 allowsfurther user input. The side input element 1615 may be a rotary switch,a button, or any other type of manual input element. In alternativeembodiments, mobile computing device 1600 may incorporate more or lessinput elements. For example, the display 1605 may not be a touch screenin some embodiments. In yet another alternative embodiment, the mobilecomputing device 1600 is a portable phone system, such as a cellularphone. The mobile computing device 1600 may also include an optionalkeypad 1635. Optional keypad 1635 may be a physical keypad or a “soft”keypad generated on the touch screen display. In various embodiments,the output elements include the display 1605 for showing a graphicaluser interface (GUI), a visual indicator 1620 (e.g., a light emittingdiode), and/or an audio transducer 1625 (e.g., a speaker). In someembodiments, the mobile computing device 1600 incorporates a vibrationtransducer for providing the user with tactile feedback. In yet anotherembodiment, the mobile computing device 1600 incorporates input and/oroutput ports, such as an audio input (e.g., a microphone jack), an audiooutput (e.g., a headphone jack), and a video output (e.g., a HDMI port)for sending signals to or receiving signals from an external device.

FIG. 16B is a block diagram illustrating the architecture of oneembodiment of a mobile computing device. That is, the mobile computingdevice 1600 can incorporate a system (i.e., an architecture) 1602 toimplement some embodiments. In one embodiment, the system 1602 isimplemented as a “smart phone” capable of running one or moreapplications (e.g., browser, e-mail, calendaring, contact managers,messaging clients, games, and media clients/players). In someembodiments, the system 1602 is integrated as a computing device, suchas an integrated personal digital assistant (PDA) and wireless phone.

One or more application programs 104 may be loaded into the memory 1662and run on or in association with the operating system 1664. Examples ofthe application programs include phone dialer programs, e-mail programs,personal information management (PIM) programs, word processingprograms, spreadsheet programs, Internet browser programs, messagingprograms, and so forth. The system 1602 also includes a non-volatilestorage area 1668 within the memory 1662. The non-volatile storage area1668 may be used to store persistent information that should not be lostif the system 1602 is powered down. The application programs 104 may useand store information in the non-volatile storage area 1668, such ase-mail or other messages used by an e-mail application, and the like. Asynchronization application (not shown) also resides on the system 1602and is programmed to interact with a corresponding synchronizationapplication resident on a host computer to keep the information storedin the non-volatile storage area 1668 synchronized with correspondinginformation stored at the host computer. As should be appreciated, otherapplications may be loaded into the memory 1662 and run on the mobilecomputing device 1600, including software applications 1520 describedherein.

The system 1602 has a power supply 1670, which may be implemented as oneor more batteries. The power supply 1670 might further include anexternal power source, such as an AC adapter or a powered docking cradlethat supplements or recharges the batteries.

The system 1602 may also include a radio 1672 that performs the functionof transmitting and receiving radio frequency communications. The radio1672 facilitates wireless connectivity between the system 1602 and the“outside world,” via a communications carrier or service provider.Transmissions to and from the radio 1672 are conducted under control ofthe operating system 1664. In other words, communications received bythe radio 1672 may be disseminated to the application programs 104 viathe operating system 1664, and vice versa.

The visual indicator 1620 may be used to provide visual notifications,and/or an audio interface 1674 may be used for producing audiblenotifications via the audio transducer 1625. In the illustratedembodiment, the visual indicator 1620 is a light emitting diode (LED)and the audio transducer 1625 is a speaker. These devices may bedirectly coupled to the power supply 1670 so that when activated, theyremain on for a duration dictated by the notification mechanism eventhough the processor 1660 and other components might shut down forconserving battery power. The LED may be programmed to remain onindefinitely until the user takes action to indicate the powered-onstatus of the device. The audio interface 1674 is used to provideaudible signals to and receive audible signals from the user. Forexample, in addition to being coupled to the audio transducer 1625, theaudio interface 1674 may also be coupled to a microphone to receiveaudible input, such as to facilitate a telephone conversation. Inaccordance with embodiments of the present invention, the microphone mayalso serve as an audio sensor to facilitate control of notifications, aswill be described below. The system 1602 may further include a videointerface 1676 that enables an operation of an on-board camera 1630 torecord still images, video stream, and the like.

A mobile computing device 1600 implementing the system 1602 may haveadditional features or functionality. For example, the mobile computingdevice 1600 may also include additional data storage devices (removableand/or non-removable) such as, magnetic disks, optical disks, or tape.Such additional storage is illustrated in FIG. 16B by the non-volatilestorage area 1668.

Data/information generated or captured by the mobile computing device1600 and stored via the system 1602 may be stored locally on the mobilecomputing device 1600, as described above, or the data may be stored onany number of storage media that may be accessed by the device via theradio 1672 or via a wired connection between the mobile computing device1600 and a separate computing device associated with the mobilecomputing device 1600, for example, a server computer in a distributedcomputing network, such as the Internet. As should be appreciated suchdata/information may be accessed via the mobile computing device 1600via the radio 1672 or via a distributed computing network 112.Similarly, such data/information may be readily transferred betweencomputing devices for storage and use according to well-knowndata/information transfer and storage means, including electronic mailand collaborative data/information sharing systems.

FIG. 17 illustrates one embodiment of the architecture of a system forproviding quick function gesture functionality to one or more clientdevices, as described above. Content developed, interacted with, oredited in association with an application 104, such as a spreadsheetapplication, may be stored in different communication channels or otherstorage types. For example, various documents may be stored using adirectory service 1722, a web portal 1724, a mailbox service 1726, aninstant messaging store 1728, or a social networking site 1730. Theapplication 104 may use any of these types of systems or the like forenabling data utilization, as described herein. A server 110 may providethe spreadsheet application 104 to clients. As one example, the server110 may be a web server providing the spreadsheet application 104 overthe web. The server 110 may provide the spreadsheet application 104 overthe web to clients through a network 112. By way of example, the clientcomputing device may be implemented as the computing device 1500 andembodied in a personal computer 102A, a tablet computer 102B, and/or amobile computing device 102C (e.g., a smart phone). Any of theseembodiments of the client computing device 102A-C may obtain contentfrom the store 1716.

Embodiments of the present invention, for example, are described abovewith reference to block diagrams and/or operational illustrations ofmethods, systems, and computer program products according to embodimentsof the invention. The functions/acts noted in the blocks may occur outof the order as shown in any flowchart. For example, two blocks shown insuccession may in fact be executed substantially concurrently or theblocks may sometimes be executed in the reverse order, depending uponthe functionality/acts involved.

One skilled in the relevant art may recognize, however, that theembodiments may be practiced without one or more of the specificdetails, or with other methods, resources, materials, etc. In otherinstances, well known structures, resources, or operations have not beenshown or described in detail merely to avoid obscuring aspects of theembodiments.

The description and illustration of one or more embodiments provided inthis application are not intended to limit or restrict the scope of theinvention as claimed in any way. The embodiments, examples, and detailsprovided in this application are considered sufficient to conveypossession and enable others to make and use the best mode of claimedinvention. The claimed invention should not be construed as beinglimited to any embodiment, example, or detail provided in thisapplication. Regardless of whether shown and described in combination orseparately, the various features (both structural and methodological)are intended to be selectively included or omitted to produce anembodiment with a particular set of features. Having been provided withthe description and illustration of the present application, one skilledin the art may envision variations, modifications, and alternateembodiments falling within the spirit of the broader aspects of thegeneral inventive concept embodied in this application that do notdepart from the broader scope of the claimed invention.

We claim:
 1. A computer-implemented method for interacting with an electronic spreadsheet document using gesture input, comprising: receiving a computer-enabled spreadsheet document; receiving a gesture input on the spreadsheet document for making a structural change to the spreadsheet document; and updating a display of the spreadsheet document to include the structural change made to the spreadsheet document in response to the gesture input.
 2. The method of claim 1, wherein updating the display of the spreadsheet document is accomplished as the gesture input is being performed.
 3. The method of claim 1, wherein receiving a gesture input on the spreadsheet document includes receiving a pull-apart gesture on the spreadsheet document for pulling two spreadsheet document columns apart for inserting one or more additional columns between the pulled-apart columns.
 4. The method of claim 1, wherein receiving a gesture input on the spreadsheet document includes receiving a pull-apart gesture for pulling two spreadsheet document columns apart for revealing one or more columns hidden from view behind the pulled-apart spreadsheet document columns.
 5. The method of claim 1, wherein receiving a gesture input on the spreadsheet document includes receiving a pull-apart gesture for pulling two spreadsheet document rows apart for inserting one or more additional rows between the pulled-apart rows.
 6. The method of claim 1, wherein receiving a gesture input on the spreadsheet document includes receiving a touch-and-slide gesture for inserting one or more columns into the spreadsheet document, wherein the touch-and-slide gesture is performed on a user interface control associated with column insertion.
 7. The method of claim 1, wherein receiving a gesture input on the spreadsheet document includes receiving a drag-and-drop away gesture for deleting a column from the spreadsheet document by dragging a column header for the deleting column away from the spreadsheet document.
 8. The method of claim 1, wherein receiving a gesture input on the spreadsheet document includes receiving a touch-hold-pull gesture for revealing a spreadsheet column hidden from view behind two columns in the spreadsheet document.
 9. The method of claim 1, wherein receiving a gesture input on the spreadsheet document includes receiving a push-together gesture for hiding one or more spreadsheet columns behind two pushed-together spreadsheet columns.
 10. The method of claim 1, wherein receiving a gesture input on the spreadsheet document includes receiving a push-together gesture for hiding one or more spreadsheet rows behind two pushed-together spreadsheet rows.
 11. The method of claim 1, wherein receiving a gesture input on the spreadsheet document includes receiving a drag-and-drop between gesture for moving a column from a first location in the spreadsheet document to a second location in the spreadsheet document by dragging and dropping a column header for the moved column to a different column header position in the spreadsheet document.
 12. The method of claim 1, wherein receiving a gesture input on the spreadsheet document includes receiving a multi-touch swipe gesture for navigating between sheets comprising a spreadsheet workbook.
 13. The method of claim 1, wherein receiving a gesture input on the spreadsheet document includes receiving a touch-and-throw gesture for extending a selected functionality from one portion of a spreadsheet document to one or more other portions of the spreadsheet document.
 14. The method of claim 1, wherein receiving a gesture input on the spreadsheet document includes receiving a touch-and-pull gesture on a column header for automatically sorting one or more data items contained in a spreadsheet column associated with the column header.
 15. The method of claim 1, wherein receiving a gesture input on the spreadsheet document includes receiving a pinch-and-turn gesture for rotating an element displayed in the spreadsheet document.
 16. The method of claim 1, wherein receiving a gesture input on the spreadsheet document includes receiving a tear-and-pull gesture for pulling an object from a display position within the spreadsheet document to a display position floating on the spreadsheet document.
 17. A computer readable medium on which is stored computer executable instructions which when executed by a computer perform a method for interacting with an electronic spreadsheet document using gesture input, comprising: receiving a computer-enabled spreadsheet document; receiving a gesture input on the spreadsheet document for making one or more changes to the spreadsheet document; and updating a display of the spreadsheet document to include the one or more changes made to the spreadsheet document in response to the gesture input.
 18. The computer readable medium of claim 17, wherein updating the display of the spreadsheet document is accomplished as the gesture input is being performed.
 19. A system for interacting with an electronic spreadsheet document using gesture input, comprising: one or more processors; and a memory coupled to the one or more processors, the one or more processors operable to: display a spreadsheet document; receive a gesture input on the spreadsheet document for making a structural change to the spreadsheet document; and update a display of the spreadsheet document to include the structural change made to the spreadsheet document in response to the gesture input.
 20. The system of claim 19, the one or more processors being further operable to update the display of the spreadsheet document as the gesture input is being received. 